home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / ivl / src / ivl.h < prev    next >
Text File  |  2000-06-23  |  5KB  |  144 lines

  1. #if    !defined(IVL_H_HAS_INCLUDED)
  2. #define    IVL_H_HAS_INCLUDED
  3. /*
  4. *    SXアイコン表示処理(複数ファイル指定対応)
  5. *
  6. *        ivl.x
  7. *
  8. *    v0.01:    from May.29,1999. dummy.x.(with J-S.I.)
  9. *
  10. *謝辞:    このプログラムは(電脳倶楽部53号掲載の IV.X v1.20(内瀬優+頼藤凌両氏)
  11. *    を参照しています。両氏に深く感謝します。
  12. */
  13. #include    <sys\dos.h>
  14. #include    "comtype.h"
  15. #include    "libpt4.h"
  16.  
  17. /* データ構造定義 */
  18. typedef struct _filbuf _filesbuf_t;    /* DOS _FILES データ */
  19.     /* ファイル管理データ */
  20. typedef struct {
  21.     const char *pathp;    /* ファイル名 */
  22.     _filesbuf_t fbuf;    /* DOS _FILES バッファ */
  23.     signed char rdresult;    /* 先行読み込みでの返却値(RDPT4_~) */
  24.     pt4_struct_t *rdbufp;    /* 先行読み込みバッファアドレス(=NULL:読み込んでない) */
  25.     short wdots, hdots;    /* 画像の横幅/縦高(dot単位)(wdots<0:ファイルエラーあり) */
  26. } filelist_t;
  27.  
  28. /* 定数定義 */
  29. #define    DEF_PROG_NAME    "ivl"        /* このプログラムの名前 */
  30. #define    DEF_ICN_FEXT    ".PT4"        /* アイコンデータファイルの標準拡張子 */
  31. #define    DEF_SCREEN_WIDTH    768            /* 画面横幅標準値 */
  32. #define    DEF_SCREEN_HEIGHT    (512 - (16 + 2))    /* 画面縦高標準値 */
  33.     /* アイコン表示数 */
  34. #define    DEF_PAT_ON_LINE        7    /* 1行のパターン表示数標準値 */
  35. #define    PAT_ON_LINE_MIN        1    /* 1行のパターン表示数最小値 */
  36. #define    PAT_ON_LINE_MAX        8    /* 1行のパターン表示数最大値 */
  37. #define    DEF_PAT_LINE_KAZ    4    /* パターン表示行数標準値 */
  38. #define    PAT_LINE_KAZ_MIN    1    /* パターン表示行数最小値 */
  39. #define    PAT_LINE_KAZ_MAX    7    /* パターン表示行数最大値 */
  40.     /* アイコン情報の表示関連 */
  41. #define    INF_MOJI_WIDTH    6    /* アイコン情報文字横幅(半角) */
  42. #define    INF_MOJI_HEIGHT    12    /* アイコン情報文字縦高 */
  43. #define    INF_AREA_DIF    2    /* アイコン情報表示領域のアイコン画像との隙間 */
  44. #define    INF_AREA_HEIGHT    (INF_MOJI_HEIGHT + INF_AREA_DIF * 2)
  45.                 /* アイコン情報表示領域の縦高(文字高+上下に隙間) */
  46.     /* アイコン情報の種類 */
  47. enum {
  48.     ICONINFO_NAME = 0,    /* ファイル名 */
  49.     ICONINFO_PATH,        /* パス名 */
  50.     ICONINFO_INFO,        /* 画像情報 */
  51.     ICONINFO_KAZ
  52. };
  53.     /* アイコン画像表示領域サイズ */
  54. #define    DEF_PAT_GRPH_W    35            /* 表示画像横幅標準値 */
  55. #define    PAT_GRPH_W_MIN    1            /* 表示画像横幅最小値 */
  56. #define    PAT_GRPH_W_MAX    DEF_SCREEN_WIDTH    /* 表示画像横幅最大値 */
  57. #define    DEF_PAT_GRPH_H    38            /* 表示画像縦高標準値 */
  58. #define    PAT_GRPH_H_MIN    1            /* 表示画像縦高最小値 */
  59. #define    PAT_GRPH_H_MAX    DEF_SCREEN_HEIGHT    /* 表示画像縦高最大値 */
  60.     /* 動作状態指示フラグ bit 列の各bitの意味
  61.     *    注記    * 競合する bit は、基本的に番号が小さいほど優先される。
  62.     */
  63. enum {
  64.     FBIT_PAGE_BY_SIZE,    /* 1画面の表示数の設定方法(=0:個数/=1:画像サイズから算出) */
  65.     FBIT_BYSZ_UNLIM,    /* (画像サイズ算出時)表示個数の上限判定を行なわない(=1:有効) */
  66.     FBIT_BYSZ_FINDMX,    /* (画像サイズ算出時)登録ファイル中での最大サイズを使う(=1:有効) */
  67.     FBIT_ONLYINFO,        /* 情報表示のみ行なう(=1:有効) */
  68.     FBIT_NOFILE,        /* ファイル名引数の処理不要(=1:不要) */
  69.     FBIT_VERBOSE,        /* 処理の進行状況を表示(=1:有効) */
  70.     FBIT_ONMEMORY,        /* 先行読み込み(=1:有効) */
  71.     FBIT_ONMEM_SZ,        /* 先行して画像サイズだけ読んでおく(=1:有効) */
  72.     FBIT_NOCTRL_KEY,    /* キーボード操作禁止(=1:禁止) */
  73.     FBIT_NOCTRL_MS,        /* マウス操作禁止(=1:禁止) */
  74.     FBIT_NOCTRL_JOY,    /* ジョイスティック操作禁止(=1:禁止) */
  75.     FBIT_NOCUTINF,        /* ファイル情報表示を切り詰めない(=1:有効) */
  76.     FBIT_FNCASE,        /* ファイル名の大小文字(=1:有効) */
  77.     FBIT_BIT_KAZ
  78. };
  79.     /* ユーザ操作コード */
  80. enum {
  81.     CTRL_NONE = 0,        /* 操作なし(現状維持) */
  82.     CTRL_QUIT,        /* 終了 */
  83.     CTRL_QUIT_KPSCR,    /* 終了:画面状態維持 */
  84.     CTRL_NEXTPAGE,        /* 次ページに移動 */
  85.     CTRL_NEXTLINE,        /* 次行に移動 */
  86.     CTRL_BACKLINE,        /* 前行に移動 */
  87.     CTRL_BACKPAGE,        /* 前ページに移動 */
  88.     CTRL_FIRSTPAGE,        /* ページ0に戻る */
  89.     CTRL_WIDTH_512,        /* 表示画面 512×512 モードに */
  90.     CTRL_WIDTH_768,        /* 表示画面 768×512 モードに */
  91.     CTRL_INFO_NAME,        /* アイコンファイル名表示 */
  92.     CTRL_INFO_PATH,        /* アイコンファイルパス名表示 */
  93.     CTRL_INFO_INFO,        /* アイコン情報表示 */
  94.     CTRL_DISP_NORM,        /* 画像を通常表示に戻す */
  95.     CTRL_DISP_NGTV,        /* 画像表示を色反転/戻す(toggle) */
  96.     CTRL_DISP_MONO,        /* 画像表示を白黒に/戻す(toggle) */
  97. #if    0
  98.     CTRL_LASTPAGE,        /* 最終ページに進む */
  99.     CTRL_INFO_CHG,        /* アイコン情報表示切替 */
  100. #endif
  101.     CTRL_CODE_KAZ
  102. };
  103.  
  104. /* 大域変数宣言 */
  105.     /* ivl */
  106. extern ushort state_flag_bits;
  107.     /* ivl_iv */
  108. extern short pat_on_line;
  109. extern short pat_line_kaz;
  110. extern short screen_width, screen_height;
  111. extern short pat_disp_area_w, pat_disp_area_h;
  112. extern short pat_disp_area_gh;
  113.     /* ivl_ftbl */
  114. extern long arg_file_kaz;
  115. extern filelist_t *arg_file_tblp;
  116.  
  117. /* 関数宣言 */
  118.     /* ivl_iv */
  119. extern int view_icons(void);
  120. extern void init_view_info(void);
  121.     /* ivl_ftbl */
  122. extern long entry_arg_file_name(const char *pathp, const struct _filbuf *filesp);
  123.     /* ivl_draw */
  124. extern void symbol_pt4_error(const char *msgp, ushort tx, ushort ty);
  125. extern void symbol_6x12(const char *strp, ushort tx, ushort ty);
  126. extern void boxfill_in_area(short x, short y, short w, short h);
  127. extern void print_message_on_guideline    \
  128. (const char *strp, int col, int topno, int maxno, int sepch);
  129.     /* ivl_ctrl */
  130. extern int get_user_ctrl(void);
  131.     /* ivl_oi */
  132. extern int print_all_icon_info(void);
  133. extern int print_pageview_data(void);
  134.  
  135.  
  136. /* 簡易マクロ */
  137.     /* 進行状況の表示
  138.     *    その指示がある時にのみ表示を行なう
  139.     */
  140. #define    printf_at_verbose(pargs)    \
  141.     if (chkbit(state_flag_bits, FBIT_VERBOSE)) {printf##pargs##;}
  142.  
  143. #endif    /* !defined(IVL_H_HAS_INCLUDED) */
  144.